﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace File_System_Simulation
{
    //------------------------------------------------------------------------------
    /// <summary>
    /// 
    /// </summary>
    /// <typeparam name="T"></typeparam>
    //------------------------------------------------------------------------------
    public interface ITreeNode<T>
    {

        //------------------------------------------------------------------------------
        /// <summary>
        /// 
        /// </summary>
        //------------------------------------------------------------------------------
        T Parent { get; set; }

        //------------------------------------------------------------------------------
        /// <summary>
        /// 
        /// </summary>
        //------------------------------------------------------------------------------
        bool IsLeaf { get; }

        //------------------------------------------------------------------------------
        /// <summary>
        /// 
        /// </summary>
        //------------------------------------------------------------------------------
        bool IsRoot { get; }

        //------------------------------------------------------------------------------
        T GetRootNode();

        //------------------------------------------------------------------------------
        /// <summary>
        /// 
        /// </summary>
        //------------------------------------------------------------------------------
        string GetFullyQualifiedName();
    }
}
